import requests
import os
from bs4 import BeautifulSoup

url = 'http://m.50zw.la/chapters_4598/'
web_url = 'http://m.50zw.la'
re_header = {
'Referer':'http://m.50zw.la/',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Mobile Safari/537.36'
}

'''***************************获取章节列表**********************************'''
chapter_list = []
i = 1
while 1:
    #获取网页
    #更改编码
    #获得BeautifulSoup对象
    #获取章节列表
    #url + str(i)第i页的url
    r = requests.get(url + str(i),params=re_header)
    r.encoding = 'gbk'
    soup = BeautifulSoup(r.text,"html.parser")
    
    i+=1
    print(url + str(i))
    
    temp_list = soup.select('.last9 a')
    for t in range(len(temp_list)):
        temp_list[t] = temp_list[t]['href']
    del temp_list[0]
    if(len(temp_list)==0):
        break
    chapter_list.extend(temp_list)

for i in range(len(chapter_list)):
    chapter_list[i] = 'http://m.50zw.la' + chapter_list[i]
    print(chapter_list[i])


'''***********************************获取章节内容*************************'''
#打开/创建文件
fo = open('1.txt','wb')

for t in chapter_list:
    #获取第一页页面
    r = requests.get(t,params=re_header)
    r.encoding = 'gbk'
    soup = BeautifulSoup(r.text,"html.parser")
    
    #这个网站把每个章节分为两页，要分两次获取
    #获取章节名和第一页的内容
    title = soup.select('.nr_title')[0].text
    content_1 = soup.select('#nr1')[0].text

    #获取第二页页面
    r = requests.get(t.replace('.html','_2.html'),params=re_header)
    r.encoding = 'gbk'
    soup = BeautifulSoup(r.text,"html.parser")

    #第二部分章节内容
    content_2 = soup.select('#nr1')[0].text

    #拼接两部分内容 详细请搜索字符串join方法
    str1 = ''
    chapter_content = str1.join([content_1,content_2])

    #写入章节名和内容
    fo.write((title).encode('utf-8'))
    fo.write((chapter_content).encode('utf-8'))

    #打印提示
    print(title + '已下载')


#关闭文件
fo.close()

print('下载成功')
